﻿using AutoMapper;
using FlyingEye.Come;
using FlyingEye.ComServices;
using FlyingEye.DeviceMaintenance;
using FlyingEye.DeviceMaintenanceServices;
using FlyingEye.Factories;

namespace FlyingEye
{
    public class ApplicationProfile : Profile
    {
        public ApplicationProfile()
        {
            CreateMap<CreateDeviceMaintenanceRequest, DeviceMaintenanceModel>();
            CreateMap<DeviceMaintenanceModel, DeviceMaintenanceResponse>();

            CreateMap<CreateDevicePartRequest, DevicePartModel>();
            CreateMap<DevicePartModel, DevicePartResponse>();

            CreateMap<CreateDevicePartCheckItemRequest, DevicePartCheckItemModel>();
            CreateMap<DevicePartCheckItemModel, DevicePartCheckItemResponse>();

            CreateMap<CreateMaintenanceRecordRequest, MaintenanceRecordModel>();
            CreateMap<MaintenanceRecordModel, MaintenanceRecordResponse>();

            CreateMap<DevicePartCheckedResultModel, DevicePartCheckedResultResponse>();

            CreateMap<ComeGroupNotificationConfigurationModel, ComeGroupNotificationConfigurationResponse>();
            CreateMap<CreateComeGroupNotificationConfigurationRequest, ComeGroupNotificationConfigurationModel>();

            CreateMap<ComeUserNotificationConfigurationModel, ComeUserNotificationConfigurationResponse>();
            CreateMap<CreateComeUserNotificationConfigurationRequest, ComeUserNotificationConfigurationModel>();

            CreateMap<ComeUserModel, ComeUserResponse>();
            CreateMap<CreateComeUserRequest, ComeUserModel>();

            CreateMap<ComeGroupNotificationConfigurationResponse, ComeGroupNotificationConfiguration>();
            CreateMap<ComeUserNotificationConfigurationResponse, ComeUserNotificationConfiguration>();

            CreateMap<FlyingEye.DeviceMaintenance.MaintenanceMemberModel, FlyingEye.DeviceMaintenanceServices.MaintenanceMemberResponse>();
            CreateMap<FlyingEye.DeviceMaintenanceServices.CreateMaintenanceMemberRequest, FlyingEye.DeviceMaintenance.MaintenanceMemberModel>();

            CreateMap<DeviceHostModel, DeviceHostResponse>();
            CreateMap<CreateDeviceHostRequest, DeviceHostModel>();
            CreateMap<UpdateDeviceHostRequest, DeviceHostModel>();

            CreateMap<ProductionProcessModel, ProductionProcessResponse>();
            CreateMap<CreateProductionProcessRequest, ProductionProcessModel>();
            CreateMap<UpdateProductionProcessRequest, ProductionProcessModel>();

            CreateMap<ProductionWorkshopModel, ProductionWorkshopResponse>();
            CreateMap<CreateProductionWorkshopRequest, ProductionWorkshopModel>();
            CreateMap<UpdateProductionWorkshopRequest, ProductionWorkshopModel>();

            CreateMap<ProductionBaseModel, ProductionBaseResponse>();
            CreateMap<CreateProductionBaseRequest, ProductionBaseModel>();
            CreateMap<UpdateProductionBaseRequest, ProductionBaseModel>();

            CreateMap<ComeGroupNotificationConfigurationModel, ComeGroupNotificationConfiguration>();
            CreateMap<ComeUserNotificationConfigurationModel, ComeUserNotificationConfiguration>();

            CreateMap<DevicePartCharacteristicModel, DevicePartCharacteristicResponse>();
            CreateMap<CreateDevicePartCharacteristicRequest, DevicePartCharacteristicModel>();
            CreateMap<UpdateDevicePartCharacteristicRequest, DevicePartCharacteristicModel>();
        }
    }
}
